package top.as.sean.dao.mapper.system;

import org.apache.ibatis.annotations.Param;
import top.as.sean.dao.dto.system.UserRoleCancel;
import top.as.sean.dao.entity.pojo.system.UserRole;

import java.util.List;
import java.util.Set;

/**
 * 用户-角色
 *
 * @author: ArchieSean
 * @create: 2022/11/29
 */
public interface UserRoleMapper {
    /**
     * 新增用户-角色信息
     *
     * @param list 集合
     */
    void saveBatch(List<UserRole> list);

    /**
     * 删除用户
     *
     * @param ids 用户id
     */
    void deleteByUserId(List<Long> ids);

    /**
     * 根据用户id删除
     *
     * @param userId 用户id
     */
    void delBatchByUserId(Long userId);

    /**
     * 根据角色id查询
     *
     * @param roleId 角色id
     * @return list
     */
    List<Long> queryByRoleId(@Param("roleId") Long roleId);

    /**
     * 取消授权
     *
     * @param dto 入参
     */
    void cancel(@Param("dto") UserRoleCancel dto);

    /**
     * 查询角色名称
     *
     * @param userId 用户id
     * @return list
     */
    Set<String> queryRoleName(Object userId);

    /**
     * 查询按钮权限标识符
     *
     * @param userId 用户id
     * @param menuTypeCode  按钮类型
     * @return list
     */
    Set<String> queryBtnList(Object userId,String menuTypeCode);
}
